package br.com.fiap.beans;

import java.io.Serializable;
import java.util.List;

import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import javax.inject.Inject;
import javax.inject.Named;

import br.com.fiap.beans.filtro.FiltroCliente;
import br.com.fiap.dao.ClienteDAO;
import br.com.fiap.entity.Cliente;

@Named
@ManagedBean
@SessionScoped
public class FiltroClienteBean extends AbstractBeanAcessor implements Serializable {
	
	private static final long serialVersionUID = 3910194050364656214L;
	
	private FiltroCliente filtroCliente = new FiltroCliente();
	private List<Cliente> clientes;
	
	@Inject
	private ClienteDAO clienteDAO;

	public FiltroCliente getFiltroCliente() {
		return filtroCliente;
	}

	public void setFiltroCliente(FiltroCliente filtroCliente) {
		this.filtroCliente = filtroCliente;
	}

	public List<Cliente> getClientes() {
		return clientes;
	}

	public void setClientes(List<Cliente> clientes) {
		this.clientes = clientes;
	}
	
	public String filtrarClientes() {
		
		List<Cliente> clientes = clienteDAO.findByFilter(filtroCliente);
		
		this.clientes = clientes;
		
		return "/cliente/lista-cliente";
	}
	
	public void excluirCliente(Long id) {
		clienteDAO.delete(id);
		this.filtrarClientes();
	}
	
}
